Typecho文章cid、分类标签mid不连续解决方案

350次阅读
没有评论

共计 2184 个字符,预计需要花费 6 分钟才能阅读完成。

因为 Typecho 的机制,页面、附件都要占 cid。而且点击一次创建文章 cid 就会增加一次,即使你没有书写内容,那个 cid 也被认为已经使用了,所以下一次生成的 cid 就会跳过那个,造成不连续。

虽然不影响什么,也无关紧要,但是对于有强迫症的人来说,真的是无法忍受,看到了非得给改一下不可。

特别提醒:请在 PHP 7 以上版本的服务器上执行。本操作涉及数据库,请提前做好备份工作。

文章 cid

将以下代码保存为 php 文件并上传至网站根目录,在浏览器地址栏访问一下即可。

<?php
/**
* Typecho 重新排列文章 cid 让他连续
*/

// 设置数据库参数
$hostname_blog = "localhost";
$database_blog = " 数据库名 ";
$username_blog = " 数据库用户名 ";
$password_blog = " 数据库密码 ";

// 连接到数据库
$blog = mysqli_connect($hostname_blog, $username_blog, $password_blog, $database_blog) or die(mysqli_connect_error());

// 设置计数器的初始值
$no = 1;

// 定义一个函数来更新文章 cid
function change_id($cid)
{
    global $no, $blog;

    // 更新文章 cid,并更新与类别、标签、自定义字段和评论的关系
    mysqli_query($blog, "UPDATE typecho_contents SET cid = $no WHERE cid = $cid");
    mysqli_query($blog, "UPDATE typecho_relationships SET cid = $no WHERE cid = $cid");
    mysqli_query($blog, "UPDATE typecho_comments SET cid = $no WHERE cid = $cid");

    $no = $no + 1;
}

// 从数据库中选择所有文章 cid,按其 cid 排序
$query_postRecord = "SELECT cid FROM typecho_contents ORDER BY cid ASC";
$result = mysqli_query($blog, $query_postRecord);

// 循环浏览文章并更新其 cid
while ($row = mysqli_fetch_assoc($result)) {change_id($row['cid']);
}

// 重置文章 cid 的自动递增值
mysqli_query($blog, "ALTER TABLE typecho_contents AUTO_INCREMENT = $no");

echo 'ok';

?>

Tips:文章 cid 重新排列后,上传的附件所属文章可能不正确,需手动修改。

分类标签 mid

将以下代码保存为 php 文件并上传至网站根目录,在浏览器地址栏访问一下即可。

<?php
/**
* Typecho 重新排列分类和标签(meta)不连续的 mid
*/

// 数据库参数
$hostname_blog = "localhost";
$database_blog = " 数据库名 ";
$username_blog = " 数据库用户名 ";
$password_blog = " 数据库密码 ";
$blog = new mysqli($hostname_blog, $username_blog, $password_blog, $database_blog);

// 检查错误
if ($blog->connect_error) {trigger_error($blog->connect_error, E_USER_ERROR);
}

// 定义全局变量以跟踪“no”值
$no = 1;

// 定义一个函数来更新 mid 及其关系
function change_id($mid)
{
    global $no;
    global $blog;

    // 更新 mid
    $sql = "UPDATE typecho_metas SET mid = ? WHERE mid = ?";
    $stmt = $blog->prepare($sql);
    $stmt->bind_param("ii", $no, $mid);
    $stmt->execute();

    // 更新关系
    $sql = "UPDATE typecho_relationships SET mid = ? WHERE mid = ?";
    $stmt = $blog->prepare($sql);
    $stmt->bind_param("ii", $no, $mid);
    $stmt->execute();

    // 递增 no 值
    $no++;
}

// 从数据库中获取所有 mid
$query_postRecord = "SELECT mid FROM typecho_metas ORDER BY mid ASC";
$all_postRecord = $blog->query($query_postRecord);

// 循环遍历结果并调用 change_id() 函数
while ($row_postRecord = $all_postRecord->fetch_assoc()) {change_id($row_postRecord['mid']);
}

// 重置 typecho_metas 表的自动增量值
$blog->query("ALTER TABLE typecho_metas AUTO_INCREMENT = $no");

echo 'ok';
?>

正文完
 0
阿伯手记
版权声明:本站原创文章,由 阿伯手记 于2023-08-24发表,共计2184字。
转载说明:本站原创内容,除特殊说明外,均基于 CC BY-NC-SA 4.0 协议发布,转载须注明出处与链接。
评论(没有评论)
验证码

阿伯手记

阿伯手记
阿伯手记
喜欢编程,头发渐稀;成长路上,宝藏满地
文章数
767
评论数
207
阅读量
682702
今日一言
-「
热门文章
职场救急!AI请假话术生成器:1秒定制高通过率理由

职场救急!AI请假话术生成器:1秒定制高通过率理由

超级借口 不好开口?借口交给我!智能生成工作请假、上学请假、饭局爽约、约会拒绝、邀约推辞、万能借口等各种借口理...
夸克网盘快传助手提高非VIP下载速度

夸克网盘快传助手提高非VIP下载速度

夸克网盘限速这个大家都知道,不开会员差不多限速在几百 K。那有没有办法在合法合规途径加速下载夸克网盘呢?这里推...
TVAPP:开源电视盒子资源库,一键打造家庭影院

TVAPP:开源电视盒子资源库,一键打造家庭影院

导语 TVAPP 是一个专为 Android TV 电视盒子用户打造的开源影音资源库,集成了影视、直播、游戏等...
巴别英语:用美剧和TED演讲轻松提升英语听力与口语

巴别英语:用美剧和TED演讲轻松提升英语听力与口语

还在为枯燥的英语学习而烦恼吗?巴别英语通过创新的美剧学习模式,让英语学习变得生动有趣。平台提供海量美剧和 TE...
Chinese Name Generator 在线中文姓名生成器

Chinese Name Generator 在线中文姓名生成器

Chinese Name Generator 是一款在线中文姓名生成器,可在几秒内生成符合个人需求的中文名字。...
2025年12月 每日精选

2025年12月 每日精选

关于每日精选栏目 发现一些不错的资源,点击 这里 快速投稿。 12 月 26 日 .ax 顶级域 目前全球唯一...
123云盘限时福利:登录即送1个月VIP尊享权益!

123云盘限时福利:登录即送1个月VIP尊享权益!

🎁  零成本体验 20T 超大空间与会员加速通道 🎉 活动亮点 登录即送:无需任何复杂操作,登录账号直接领取 ...
最新评论
阿伯手记 阿伯手记 发了:https://aboss.top/moments/1064
吴蛋蛋 吴蛋蛋 快发小年快乐
吴蛋蛋 吴蛋蛋 Ask4Me,这个之前看server酱接入了
15220202929 15220202929 怎么用
八对 八对 麻烦大佬更新下【堆新】的友链站名:八对星星描述:极目星视穹苍无界•足履行者大地有疆链接:https://8dui.com图标:https://cf.8dui.com/logo.webp横标:https://cf.8dui.com/logo-w.webp订阅:https://8dui.com/rss.xml
三毛笔记 三毛笔记 已添加
DUINEW DUINEW 已添加贵站,期待贵站友链~博客名称:堆新博客地址:https://duinew.com/博客描述:堆新堆新,引力向新!——堆新(DUINEW)博客头像:https://d.duinew.com/logo.webp横版头像:https://d.duinew.com/logo-w.webp博客订阅:https://duinew.com/rss.xml
hedp hedp 没看懂
bingo bingo 直接生成就可以啦,也可以添加一些选项
热评文章
夸克网盘快传助手提高非VIP下载速度

夸克网盘快传助手提高非VIP下载速度

夸克网盘限速这个大家都知道,不开会员差不多限速在几百 K。那有没有办法在合法合规途径加速下载夸克网盘呢?这里推...
Short-Link 免费开源短网址程序,基于Fastify、Vercel和Supabase构建

Short-Link 免费开源短网址程序,基于Fastify、Vercel和Supabase构建

Short-Link 是一款基于 Fastify、Vercel 和 Supabase 构建的 URL 缩短服务...
清华大学官方免费DeepSeek教程

清华大学官方免费DeepSeek教程

AI 领域近期最引人注目的焦点当属 DeepSeek,这款由中国创新企业深度求索研发的人工智能工具,正以开放源...
Chinese Name Generator 在线中文姓名生成器

Chinese Name Generator 在线中文姓名生成器

Chinese Name Generator 是一款在线中文姓名生成器,可在几秒内生成符合个人需求的中文名字。...
2026年2月 每日精选

2026年2月 每日精选

关于每日精选栏目 发现一些不错的资源,点击 这里 快速投稿。 2 月 17 日 国家全民健身信息服务平台 过年...
DrawLink:一键生成链接视觉卡片,提升分享点击率

DrawLink:一键生成链接视觉卡片,提升分享点击率

小贴士 :此站或已变迁,但探索不止步。我们已为您备好「类似网站」精选合集,相信其中的发现同样能为您带来惊喜。
WebRTC Screen Mirror:基于浏览器免费开源投屏神器,可实现低延迟、跨平台屏幕共享

WebRTC Screen Mirror:基于浏览器免费开源投屏神器,可实现低延迟、跨平台屏幕共享

WebRTC Screen Mirror 是一款基于 WebRTC 技术的在线屏幕共享工具,它利用浏览器内置的...